#ifndef ROBOTICTRAITS_H
#define ROBOTICTRAITS_H

#include "IRobot.h"

template <class TRobotInterface>
class RoboticTraits : public TRobotInterface
{
public:
    bool hasWings() const
    {
        return _hasWings;
    }

    Weapon weapon() const
    {
        return _weapon;
    }

    MoveType moveType() const
    {
        return _moveType;
    }

    void setHasWings(bool hasWings)
    {
        _hasWings = hasWings;
    }

    void setWeapon(Weapon weapon)
    {
        _weapon = weapon;
    }

    void setMoveType(MoveType moveType)
    {
        _moveType = moveType;
    }

    void attack()
    {
        // TODO:
    }

    void move()
    {
        // TODO:
    }

private:
    bool _hasWings;
    Weapon _weapon;
    MoveType _moveType;
};

#endif // ROBOTICTRAITS_H
